//
// Created by mongobaba on 2021/6/7.
//

#include "unit_test.h"
#include "json_validator.h"

// 特殊情况
TEST(parse_string_empty) {
    json_validator validator("");
    ASSERT_EQ(false, validator.parse_string());
    ASSERT_EQ(std::string(""), validator.left());
}

// 没有左引号
TEST(parse_string_no_left_quote) {
    std::string json(R"(ab"x)");
    json_validator validator(json);
    ASSERT_EQ(false, validator.parse_string());
    ASSERT_EQ(json, validator.left());
}

// 没有右引号
TEST(parse_string_no_right_quote) {
    json_validator validator(R"("ab)");
    ASSERT_EQ(false, validator.parse_string());
    ASSERT_EQ(std::string(), validator.left());
}

// 正确版本
TEST(parse_string_true) {
    json_validator validator(R"("ab"x)");
    ASSERT_EQ(true, validator.parse_string());
    ASSERT_EQ(std::string("x"), validator.left());
}
